<div class="interactivity-content-container" style="height: 504px;"><div class="interactivity-content"><div class="side-by-side-view" style="height: 486px;"><div class="side-by-side-view__visualizer" style="left: 0px; width: 30%; height: 100%;"><div class="glossary-list-view"><div class="items-container-wrapper"><div class="glossary-list-visualizer-group__title glossary-list-visualizer-group__title_sticked" style="display: none; top: 0px;">Т</div><div class="scrollable-container" style="overflow: hidden; height: 468px;"><div class="scrollable-container__content-container"><div class="glossary-list-visualizer-group glossary-list-visualizer-group_disabled-groups" style=""><div class="glossary-list-visualizer-item" aria-selected="true">Тема&nbsp;12.&nbsp;Работа&nbsp;с&nbsp;запросами.&nbsp;Система&nbsp;компоновки&nbsp;данных.&nbsp;Отчеты&nbsp;и&nbsp;печатные&nbsp;формы&nbsp;документов</div></div></div></div><div class="vertical-scrollbar" style="opacity: 0; display: none;"><div class="vertical-scrollbar__up" disabled=""></div><div class="thumb" style="height: 0px; top: 0px;"><div class="thumb__background"></div></div><div class="vertical-scrollbar__down" disabled=""></div></div></div></div><div class="separator-line"></div></div><div class="side-by-side-view__description side-by-side-view__description_border" style="right: 0px; width: 70%; height: 100%;"><div class="scrollable-container side-by-side-description" style="overflow: hidden;"><div class="scrollable-container__content-container"><div class="simple-item-content"><div class="simple-item-content__title"><p style="line-height:1.15em;padding-top:0em;padding-bottom:0em;font-size:24px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:24px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Тема 12. Работа с запросами. Система компоновки данных. Отчеты и печатные формы документов</span></p></div><div class="simple-item-content__content"><div class="rich-text"><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">«1С:Предприятие» поддерживается два способа представления данных:</span></p><ul><li style="text-align:justify;line-height:1.275em;padding-top:0.4em;padding-bottom:0em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">объектный способ</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">, то есть процессы чтения и записи, реализованные посредствам объектов встроенного языка. Особенность данного способа – обращение к какому-либо объекту встроенного языка происходит как к единому целому, как к совокупности данных, хранящихся в базе данных. Разработчик в объектной модели оперирует объектами встроенного языка. В объектной модели при манипулировании данными обеспечивается сохранение целостности объектов, кеширование объектов, вызов соответствующих обработчиков событий и т.&nbsp;д.;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0.8em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">табличный способ</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">, то есть процесс чтения, реализован с помощью запросов к базе данных, составленных на языке запросов. В табличной модели объекты представляют собой совокупность связанных между собой таблиц, к которым можно обращаться при помощи запросов – как к отдельной таблице, так и к нескольким таблицам во взаимосвязи.</span></li></ul><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Разработчик в этом случае получает доступ к данным сразу нескольких объектов, что применимо для анализа больших объемов данных, например при создании отчетов. Однако в силу того, что данные, выбираемые таким способом, содержат лишь некоторые реквизиты анализируемых объектов, табличный способ доступа не позволяет изменять эти данные.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Работа с запросами</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Для работы с запросами используется объект «Запрос». Он позволяет получать информацию, хранящуюся в полях базы данных, в виде выборки, сформированной по заданным правилам.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Исходную информацию запрос получает из таблиц. Таблицы делятся на реальные (объектные/необъектные) и виртуальные (реально не существуют в базе данных, формируются в тот момент, когда к ним обращается запрос). Для виртуальных таблиц можно задавать параметры, определяющие, какие данные будут включены в эти таблицы. Отдельный подкласс таблиц образуют объектные таблицы. В качестве объектной таблицы всегда выступает реальная таблица базы данных. Объектные таблицы предназначены для хранения состояния объектов системы «1С:Предприятие» (справочники, документы, регистры и др.). Каждая отдельная запись объектной таблицы хранит состояние определенного объекта соответствующего типа. В соответствии с этим у каждой объектной таблицы определено поле Ссылка на текущую запись.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Важно понимать, что прямого доступа к физическим таблицам, в которых хранится информация в базе данных, из «1С:Предприятие» получить нельзя. Это связано с тем, что в прикладном решении могут использоваться разные системы управления базами данных (СУБД), имеющие свою специфику, а текст запроса должен быть универсальным и одинаково работать на любой используемой системе управления базой данных. Поэтому при выполнении запроса платформа автоматически транслирует текст запроса в набор инструкций, которые «понимает» конкретная система управления базой данных (СУБД).</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Все таблицы, к которым можно обратиться с помощью языка запросов, являются придуманными, воображаемыми, в большей или меньшей степени соответствующими реальным физическим таблицам системы управления базой данных. Однако по степени похожести на физические таблицы их принято разделять на реальные и виртуальные таблицы.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Особенностью реальных таблиц является то, что реальная таблица очень похожа на свою физическую таблицу и содержит данные одной физической таблицы, хранящейся в базе данных. </span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Реальные таблицы подразделяются на объектные (ссылочные) и необъектные (нессылочные).</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">В объектных (ссылочных) таблицах представлена информация ссылочных типов данных (справочники, документы, планы видов характеристик и т. д.). А в необъектных (нессылочных) – всех остальных типов данных (константы, регистры и т. д.).</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Объектные (ссылочные) таблицы включают в себя стандартное поле Ссылка, которое позволяет однозначно идентифицировать каждую запись. Они могут быть иерархическими, подчиненными, и поля таких таблиц могут содержать вложенные таблицы (табличные части).</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Виртуальные таблицы формируются в момент выполнения запроса на основе реальных таблиц базы данных.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Общая схема выполнения запросов</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Запрос формируется и выполняется разработчиком из встроенного языка. Для этого предназначены следующие программные объекты:</span></p><ul><li style="text-align:justify;line-height:1.275em;padding-top:0.4em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Запрос,</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">РезультатЗапроса,</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">ВыборкаИзРезультатаЗапроса.</span></li></ul><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">«Схема выполнения запроса</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">1. Сначала во встроенном языке создается объект </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Запрос</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Запрос = Новый Запрос ();</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">2. У объекта </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Запрос </span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">есть свойство </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Текст</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">, в которое нужно поместить текст запроса, написанный на языке запросов. В тексте запроса описывается, какие данные, из каких таблиц нужно получить и как эти данные представить.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Запрос.Текст=</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">«Выбрать</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">….</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">ИЗ …»;</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">3. Далее запрос выполняется с помощью метода </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Выполнить() </span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">объекта </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Запрос</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">. Именно в этот момент и происходит чтение данных из базы данных. Прочитанные данные возвращаются в виде объекта </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">РезультатЗапроса</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">, содержащего выбранные данные из базы данных.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">РезультатЗапроса = Запрос.Выполнить();</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">4. Чтобы обработать данные, содержащиеся в объекте </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">РезультатЗапроса</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">, из результата запроса получается выборка с помощью метода </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Выбрать()</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">, который возвращает новый объект </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">ВыборкаИзРезультатаЗапроса</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">, то есть коллекцию данных, предназначенную для последовательного обхода ее элементов.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Выборка = РезультатЗапроса.Выбрать();</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">5. Далее выборка обходится с помощью цикла </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Пока Выборка.Следующий() Цикл</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">, а в теле цикла производятся какие-то действия над данными, полученными с помощью запроса» [3]. Данный фрагмент представлен на рис. 14. </span></p><div style="padding-top:10px;padding-bottom:10px;text-align:center"><span class="aspect-ratio-fixed-block aspect-ratio-fixed-block_zoomable inline-item" style="width: 469px;"><div class="aspect-ratio-fixed-block__inner-wrapper" style="padding-bottom: 25.7996%;"><img class="image aspect-ratio-fixed-block__content" src="data/intr1\images\img-2de02f38bfd925a48756833523bcd3b6adbb8492.jpg"></div></span></div><p style="text-align:center;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Рис. 14. Фрагмент запроса</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">В результате получим процедуру встроенного языка, в которой создается и выполняется запрос, в представленном на рис. 15 примере выводящий наименование всех товаров из справочника </span><span style="font-size:14px;font-family:fnt2_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Товары </span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">в окно сообщений. </span></p><div style="padding-top:10px;padding-bottom:10px;text-align:center"><span class="aspect-ratio-fixed-block aspect-ratio-fixed-block_zoomable inline-item" style="width: 403px;"><div class="aspect-ratio-fixed-block__inner-wrapper" style="padding-bottom: 65.7568%;"><img class="image aspect-ratio-fixed-block__content" src="data/intr1\images\img-d1723ddc8dbf9bb5a3665b5727df82ea279f22f6.jpg"></div></span></div><p style="text-align:center;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Рис. 15. Вывод наименований всех товаров в окно сообщений</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Устройство системы компоновки данных</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">«Система компоновки данных – инструмент для формирования отчетов на основе метода декларативного описания. Использование данного метода построения отчетов позволяет реализовать следующее:</span></p><ul><li style="text-align:justify;line-height:1.275em;padding-top:0.4em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">возможность создания отчета без программирования;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">создание различных видов отчета;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">задание различных пользовательских настроек;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">возможность использования автоматически генерируемых форм просмотра и настройки отчета;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">независимое использование отдельных частей системы компоновки данных;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">программное влияние на процесс выполнения отчета;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">формирование структуры отчета и его настройка;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">использование нескольких таблиц при построении отчета;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">работа с вложенными отчетами и др.</span></li></ul><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Подготовка отчета с использованием системы компоновки данных разбита на несколько физических этапов. Каждый этап поддерживает либо программный способ выполнения компоновки данных, либо визуальный способ.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Исходя из прикладной задачи, для которой разрабатывается отчет, разработчик создает схему компоновки данных, в которой описывает наборы данных, устанавливает связи между ними, определяет поля отчета, параметры получения данных, задает стандартные настройки компоновки данных – структуру отчета, порядок, отбор и другие.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">У каждого отчета разработчик может предусмотреть несколько вариантов настроек, представляющих данные в виде диаграммы, таблицы или группировок, имеющих различный состав полей, итогов и т.&nbsp;п. Разработчик может описать, какие пользовательские настройки отчета будут доступны пользователю и какие из этих настроек будут присутствовать прямо в форме отчета. Используя их, пользователь может настроить отчет под свои требования и сохранить его для дальнейшего использования.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">При формировании отчета выполняется программная компоновка данных и вывод результатов пользователю. Данные в отчете выводятся в соответствии со всеми установленными настройками.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">На основе одной схемы компоновки данных, меняя настройки, можно получить множество различных отчетов.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Источниками данных для отчета являются наборы данных. Данные можно получить из информационной базы или из объектов, находящихся в памяти, например, из таблиц значений. Один отчет может использовать одновременно несколько наборов данных, отбирая, объединяя и связывая между собой данные из разных наборов» [3].</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Существуют различные виды наборов данных. Они отличаются тем, откуда получены данные и каким способом эти данные обрабатываются:</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">1. Запрос – содержит запрос к базе данных на языке запросов с использованием дополнительных синтаксических элементов (расширений).</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">2. Объект – содержит информацию о внешнем наборе данных, например, таблице значений.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">3. Объединение – объединяет информацию из нескольких наборов данных.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Разработчик, создавая схему компоновки данных, может добавить в нее наборы данных такого вида и в таком количестве, которые ему необходимы. В зависимости от вида набора данных нужно выполнить различные действия для того, чтобы отчет мог использовать данные этого набора.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Например, если используется набор данных – запрос, то в схеме компоновки данных нужно задать текст запроса, обращающегося к информационной базе «1С:Предприятие». Если используется набор данных – объект, то в схеме компоновки нужно описать поля этого набора данных, чтобы система компоновки знала, данные какого типа будут получены из этого набора, затем с помощью встроенного языка создать внешний набор данных и инициализировать им процессор компоновки данных. Если используется набор данных – объединение, то в схеме компоновки данных нужно описать наборы данных, которые входят в это объединение.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Схема компоновки данных может содержать несколько наборов данных. В случае когда требуется получить связанную информацию из этих наборов, в схеме компоновки данных описывается их связь по какому-то полю. При связывании наборов данных в схеме компоновки используется </span><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Левое соединение.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:Roboto Cn;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Однако в случае если требуется вывести в отчет все записи из обоих наборов данных, используется набор данных – </span><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">объединение</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">. Такой набор содержит два или более подчиненных набора данных, но информация в них не связывается, а объединяется. По аналогии с языком запросов в этом случае используется </span><span style="font-size:14px;font-family:fnt1_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Объединение</span><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Отчет может содержать не только те поля, которые описаны в наборе данных, но и дополнительные поля, созданные разработчиком и вычисляемые на их основе. Значения этих полей получаются в результате вычисления выражений, написанных разработчиком в схеме компоновки данных или в результате выполнения функций, описанных в общих модулях конфигурации. </span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">При исполнении отчета с помощью системы компоновки данных из источника данных, например из информационной базы данных, извлекаются данные для отчета. В базе данных они представлены в виде таблиц. Соответственно, все эти данные можно построчно вывести в отчет. Это детальные записи. Но поскольку, как правило, эти данные привязаны к некоторым иерархическим данным (например, в отчет выводятся остатки номенклатуры, где номенклатура содержит многоуровневые группы), то возникает желание сгруппировать записи в отчете и показать остатки номенклатуры по группам (например, сколько на складе телевизоров определенной марки и сколько телевизоров в целом).</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Для этого система компоновки данных может рассчитывать и добавлять в отчет записи, которые называются итоговыми. Этих записей в явном виде нет в базе данных, но они получаются в результате исполнения отчета, на основании некоторой обработки детальных записей, которую выполняет система компоновки данных.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Эти групповые итоговые данные называются ресурсами схемы компоновки данных. Обычно данные в отчете группируются по каким-то позициям, например по номенклатуре. Смысл группировки не только в определенном расположении данных, но и в выводе итоговых данных – ресурсов по этой группировке. На основании значений ресурсов формируются общие итоги отчета.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Таким образом, для вывода таблиц и диаграмм обязательно определять ресурсы для отчета. Отчет, выводящий данные в группировку, может и не содержать ресурсов. Например, в случае вывода простых списков, когда групповые итоги не нужны.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Параметры являются критериями получения данных для отчета. Параметры могут быть явно определены в запросе, а могут быть параметрами виртуальных таблиц базы данных. Как правило, параметры выводятся пользователю перед формированием отчета. Затем заданные пользователем значения параметров передаются в отчет, и отчет формируется заново.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">«Иерархическая структура отчета состоит из следующих элементов:</span></p><ul><li style="text-align:justify;line-height:1.275em;padding-top:0.4em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">группировка – предназначена для вывода информации в виде обычного линейного отчета;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">таблица – предназначена для вывода информации в виде таблицы;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">диаграмма – предназначена для вывода информации в виде диаграммы;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">вложенный отчет – предназначен для вывода вложенного отчета.</span></li></ul><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">На первый взгляд элементы структуры отчета Группировка и Таблица похожи. Но в таблице информация группируется по строкам и по столбцам, а на их пересечении выводятся групповые итоговые данные – ресурсы. А также рассчитываются общие итоги по вертикали и горизонтали.</span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">В группировке данные группируются по строкам, и общие итоги рассчитываются только по вертикали. Группировку можно вывести в табличном виде (горизонтально), а можно – в виде вертикального списка. Для каждого элемента структуры отчета и для всего отчета в целом существуют следующие элементы настроек:</span></p><ul><li style="text-align:justify;line-height:1.275em;padding-top:0.4em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">выбранные поля – с помощью этого элемента настроек разработчик или пользователь может определить список полей, выводящихся в отчет;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">отбор – с помощью этого элемента настроек разработчик или пользователь может определить условия фильтрации записей в отчете; </span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">порядок – с помощью этого элемента настроек разработчик или пользователь может определить порядок записей в отчете;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">параметры – с помощью этого элемента настроек разработчик или пользователь может задать значения параметров отчета;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">пользовательские поля – с помощью этого элемента настроек пользователь может создать собственные дополнительные поля;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">условное оформление – с помощью этого элемента настроек разработчик или пользователь может задать условия оформления записей в отчете;</span></li><li style="text-align:justify;line-height:1.275em;padding-top:0.5249999999999999em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">другие настройки – с помощью этого элемента настроек разработчик или пользователь может задать значения параметров вывода, таких как макет оформления, заголовок, расположение итогов и др.» [2].</span></li></ul><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">Часто бывает нужно использовать данные одного отчета внутри другого. Разработав схему компоновки одного отчета, можно затем многократно использовать ее в других отчетах, связав родительский и вложенный отчеты по общему полю. </span></p><p style="text-align:justify;line-height:1.5em;padding-top:0.4em;padding-bottom:0.8em;font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal"><span style="font-size:14px;font-family:fnt0_50488, Arial, Serif, Sans-Serif;font-weight:normal;font-style:normal;">По умолчанию внешний вид отчета формируется системой автоматически. Но разработчик может задать собственное расположение и оформление различных областей отчета. Для этого в схеме компоновки данных создаются предопределенные макеты. В отличие от стандартных макетов оформления предопределенные макеты привязаны к одному отчету, его конкретным полям и структуре. Можно создавать макеты отдельных полей, группировок, итоговых полей и ресурсов отчета.</span></p></div></div></div></div></div><div class="vertical-scrollbar" style="opacity: 0;"><div class="vertical-scrollbar__up" disabled=""></div><div class="thumb" style="height: 31px; top: 0px;"><div class="thumb__background"></div></div><div class="vertical-scrollbar__down"></div></div></div></div></div></div>